<?php 
/**
 * 用户表模型
 */
class UserModel extends Model{
	//执行模型操作哪张表
	public $table = 'user';
	/**
	 * 自动验证
	 */
	public $validate = array(
		//1.表单name名称 2.规则 3.提示信息 4.验证的条件 5.验证时机
		array('username','nonull','用户名不能为空',2,3),
		array('password','nonull','密码不能为空',2,3),
		array('code','nonull','验证码不能为空',2,3),
		
	);
	
	/**
	 * 登陆验证
	 */
	public function login(){
		//create 触发自动验证
		if(!$this->create()) return false;
		//验证码是否正确
		if(Q('post.code','','strtoupper') != session('code')){
			//此处压入错误，就是为了在控制器中调用错误信息
			$this->error = '验证码不正确';
			return false;
		}
		//验证用户名和密码是否正确
		$username = Q('post.username');
		$password = Q('post.password','','md5');
		//通过用户名获得数据
		$userInfo = $this->where("username='{$username}'")->find();
		//用户名不存在或者密码不正确
		if(!$userInfo || $password != $userInfo['password']){
			$this->error = '用户名或者密码不正确';
			return false;
		}
		//返回用户信息
		return $userInfo;
	}
	public function reg(){
	    $this->validate = array(
			//1.表单name名称 2.规则 3.提示信息 4.验证的条件 5.验证时机
			array('username_reg','nonull','用户名不能为空',2,3),
			array('nickname','nonull','昵称不能为空',2,3),
			array('password_reg1','nonull','密码不能为空',2,3),
			array('password_reg2','nonull','重复密码不能为空',2,3),
			array('code','nonull','验证码不能为空',2,3),
		);
		$data = array(
			'username'=>Q('post.username_reg'),
			'nickname'=>Q('post.nickname'),
			'password'=>Q('post.password_reg2','','md5'),
		);
		//create 触发自动验证
		if(!$this->create()) return false;
		$this->add($data);
		return true;
	}
	public function UserLogin(){
	     $this->validate = array(
		 	array('username','nonull','用户名不能为空',2,3),
		 	array('password','nonull','密码不能为空',2,3),
		 );
		 //create 触发自动验证
		if(!$this->create()) return false;
		//验证用户名和密码是否正确
		$username = Q('post.username');
		$password = Q('post.password','','md5');
		//通过用户名获得数据
		$userInfo = $this->where("username='{$username}' AND is_admin=0")->find();
		//用户名不存在或者密码不正确
		if(!$userInfo || $password != $userInfo['password']){
			$this->error = '用户名或者密码不正确';
			return false;
		}
		//返回用户信息
		return $userInfo;
	}
	public function user(){
	    return $this->where("is_admin=0")->all();
	}
	public function admin(){
	    return $this->where("is_admin=1")->all();
	}
	public function lock($id){
	    $this->where("uid={$id}")->update(array('is_lock'=>1));
		return true;
	}
	public function nolock($id){
	    $this->where("uid={$id}")->update(array('is_lock'=>0));
		return true;
	}
}





